package heliotrope.utils
{
	import flash.display.BitmapData;
	import flash.geom.Point;
	import flash.geom.Rectangle;
	/**
	 * 工具类，提供有关位图处理的工具方法
	 * */
	public class BitmapUtils
	{
		public function BitmapUtils()
		{
		}
		/**
		 * 位图切割方法，将位图首先切割成若干行，再对每一行切割成若干元素
		 * @param data 需要切割的BitmapData数据
		 * @param row 需要切割出的行数
		 * @param col 需要切割出的列数
		 * @return 返回一个装有切割好的数据的BitmapData数组，其每一个元素装载一行切割出来的位图元素
		 * */
		public static function divide(data:BitmapData, row:uint, col:uint):Vector.<Vector.<BitmapData>>
		{
			var dataMatrix:Vector.<Vector.<BitmapData>> = new Vector.<Vector.<BitmapData>>;
			var srcData:BitmapData = data;
			var detaWidth:Number = srcData.width/col;
			var detaHeight:Number = srcData.height/row;
			for(var i:int = 0; i<row; i++)
			{
				var dataArry:Vector.<BitmapData> = new Vector.<BitmapData>;
				for(var j:int = 0; j<col; j++)
				{
					var tmp:BitmapData = new BitmapData(detaWidth, detaHeight, true);
					var rect:Rectangle = new Rectangle(j*detaWidth, i*detaHeight, detaWidth, detaHeight);
					tmp.copyPixels(srcData,rect, new Point(0,0));
					dataArry.push(tmp);
				}
				dataMatrix.push(dataArry);
			}
			return dataMatrix;
		}
	}
}